package 笔试;

import org.junit.Test;

import java.util.*;

public class A {
    @Test
    public void test() {
        int[] a={2,3,4,3,2,1};
        int[] b={3,2};
        System.out.println(Arrays.toString(sort(a,b)));
    }

    public int[] sort(int[] a, int[] b){
        Set<Integer> set = new HashSet<>();
        for (int i : b) {
            set.add(i);
        }
        List<Integer> list1 = new ArrayList<>();
        List<Integer> list2 = new ArrayList<>();
        for (int i = 0; i <a.length; i++) {
            if(set.contains(a[i])){
                list1.add(a[i]);
            }else{
                list2.add(a[i]);
            }
        }
        Collections.sort(list2);
        List<Integer> total = new ArrayList<>();
        Map<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < list1.size(); i++) {
            map.put(list1.get(i), map.getOrDefault(map.get(i),0)+1);
            //set存b数组
        }
        System.out.println(list1);
        System.out.println(list2);

        int i=0;
        for (Integer number : map.keySet()) {
            while (i<a.length) {
                if(list1.get(i)==number){
                    total.add(number);
                    i++;
                }else{
                    break;
                }
            }
        }

        for (Integer integer : list2) {
            total.add(integer);
        }
        int[] res = new int[a.length];
        for (int t = 0; t < a.length; t++) {
            res[t] = total.get(t);
        }
        return res;
    }
}
